package com.sxt.sys.service;

import com.sxt.sys.domain.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sxt.sys.vo.UserVo;
import org.apache.shiro.authc.AuthenticationToken;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 老雷
 * @since 2019-09-20
 */
public interface UserService extends IService<User> {

	/**
	 * 保存用户和角色之间的关系
	 * @param uid
	 * @param ids
	 */
	void saveUserRole(Integer uid, Integer[] ids);

	/**
	 * 用户全查询
	 */
	 List<User> loadAllUser(UserVo userVo);
	/**
	 * 加载最大的排序码
	 * @param
	 * @return
	 */
	 List<User> loadUserMaxOrderNum();
	/**
	 * 根据部门ID查询用户
	 */
	 List<User> loadUsersByDeptId(Integer deptid);


	/**
	 * 添加用户
	 */
	 Boolean addUser(UserVo userVo);
	/**
	 * 修改用户
	 */
	 Boolean updateUser(UserVo userVo);
	/**
	 * 删除用户
	 */
	 Boolean deleteUser(Integer id);
	/**
	 * 重置用户密码
	 */
	 Boolean resetPwd(Integer id);
	/**
	 * 根据用户ID查询角色并选中已拥有的角色
	 */
	 List<Map<String, Object>> initRoleByUserId(Integer id);
	/**
	 * 用户修改密码
	 */
	 Boolean udpatepwd(String newpwd);

    User getOneRealm(AuthenticationToken token);
}
